home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d885.lha / KCommodity / RCS2HST / rcs2hst.c < prev    next >
C/C++ Source or Header  |  1993-07-16  |  3KB  |  139 lines

  1. /* $Revision Header built automatically *************** (do not edit) ************
  2. **
  3. ** © Copyright by Dirk Federlein
  4. **
  5. ** File             : DH2:CC/wks/rcs2hst/rcs2hst.c
  6. ** Created on       : Monday, 22-Mär-93  00:59:15
  7. ** Created by       : Dirk Federlein
  8. ** Current revision : V1.0
  9. **
  10. **
  11. ** Purpose
  12. ** -------
  13. **   - RCS2HST:
  14. **     Translates KCommodity RCS headers into plain history files.
  15. **     Gets the .c file as source and writes an ASCII file
  16. **     containing the revision texts.
  17. **
  18. ** Revision V1.0
  19. ** --------------
  20. ** created on Monday, 22-Mär-93  00:59:15  by  Dirk Federlein.   LogMessage :
  21. **     --- Initial release ---
  22. **
  23. *********************************************************************************/
  24. #define REVISION "1.0"
  25. #define REVDATE  "22.03.93"
  26. #define REVTIME  "00:59:15"
  27. #define AUTHOR   "Dirk Federlein"
  28. #define VERNUM   1
  29. #define REVNUM   0
  30.  
  31. #define ARGTEMPLATE    "INFILE/A, OUTFILE/A"
  32.  
  33. #define STARTSEQ    "$Revision Header built automatically *************** (do not edit) ************"
  34. #define ENDHEADSEQ    "** Purpose"
  35. #define ENDSEQ        "******************************************************************************"
  36. #define CPRSEQ        "** © Copyright by"
  37. #define FILESEQ        "** File             :"
  38. #define REVSEQ        "** Current revision :"
  39.  
  40. #define STARTUP        "RCS2HST    © Dirk Federlein 1993\n\n"
  41.  
  42. #include <stdio.h>
  43. #include <exec/types.h>
  44. #include <dos/dos.h>
  45. #include <proto/dos.h>
  46.  
  47. char    version = "$REV: RCS2HST V" REVISION " (" REVDATE ")";
  48.  
  49. main(int argc, char ** argv)
  50. {
  51.     char                * lptr                = NULL;
  52.     char                * cptr                = NULL;
  53.     char                linebuffer[128]        = { 0 };
  54.     char                copyrightbuffer[64]    = { 0 };
  55.     char                filebuffer[64]        = { 0 };
  56.     char                revbuffer[16]        = { 0 };
  57.  
  58.     LONG                argarray[2]            = { 0, 0 };
  59.  
  60.     struct RDArgs        * RDArgs            = NULL;
  61.  
  62.     FILE                * infile            = NULL;
  63.     FILE                * outfile            = NULL;
  64.  
  65.  
  66.     if (! ReadArgs(ARGTEMPLATE, argarray, NULL))
  67.     {
  68.         PrintFault(IoErr(), NULL);
  69.         exit (5);
  70.     }
  71.  
  72.     printf (STARTUP);
  73.     printf ("Working...");
  74.  
  75.     if (infile = fopen ((char *)argarray[0], "r"))
  76.     {
  77.         if (outfile = fopen ((char *)argarray[1], "w"))
  78.         {
  79.             /* --- Find RCS header -------------------------------------- */
  80.             do
  81.             {
  82.                 if (!(lptr = fgets ( linebuffer, 128 , infile )))
  83.                     goto end;
  84.             } while ( !strstr (lptr, STARTSEQ));
  85.  
  86.             do
  87.             {
  88.                 if (!(lptr = fgets ( linebuffer, 128 , infile )))
  89.                     goto end;
  90.  
  91.                 if (cptr = strstr ( lptr, CPRSEQ ))
  92.                 {
  93.                     cptr += strlen(CPRSEQ);
  94.                     strcpy ( copyrightbuffer, cptr );
  95.                 }
  96.  
  97.                 if (cptr = strstr ( lptr, FILESEQ ))
  98.                 {
  99.                     cptr += strlen(FILESEQ);
  100.                     strcpy ( filebuffer, cptr );
  101.                 }
  102.  
  103.                 if ( cptr = strstr ( lptr, REVSEQ ))
  104.                 {
  105.                     cptr += strlen(REVSEQ);
  106.                     strcpy ( revbuffer, cptr );
  107.                 }
  108.  
  109.             } while ( !strstr (lptr, ENDHEADSEQ));
  110.  
  111.             fprintf ( outfile, "       Programm    : %s\n", filebuffer );
  112.             fprintf ( outfile, "       Version     : %s\n\n", revbuffer );
  113.             fprintf ( outfile, "       Copyright by: %s\n\n\n", copyrightbuffer);
  114.             fprintf ( outfile, "Purpose\n" );
  115.  
  116.             do
  117.             {
  118.                 if (!(lptr = fgets ( linebuffer, 128 , infile )))
  119.                     goto end;
  120.  
  121.                 if (!strstr (lptr, ENDSEQ))
  122.                     fprintf ( outfile, "%s\n", lptr+3 );
  123.  
  124.             } while ( !strstr (lptr, ENDSEQ));
  125.  
  126. end:
  127.             fclose (outfile);
  128.         }
  129.  
  130.         fclose (infile);
  131.     }
  132.  
  133.     FreeArgs ( RDArgs );
  134.  
  135.     printf ("done.\n");
  136.  
  137.     exit(0);
  138. }
  139.